#!/bin/bash
set -x

# 配置变量
TO="hanqingwu@126.com" # 收件人邮箱
FROM="hanqingwu@126.com" # 发件人邮箱
CC="hanqingwu@126.com"
CC1="hanqingwu@126.com"
CC2="hanqingwu@126.com"
SMTP_SERVER="smtp.126.com" # SMTP服务器地址
DISK_SPACE_LIMIT=75 # 磁盘空间限制百分比（例如，90表示磁盘空间使用超过90%时发送警告）
DISK="/dev/vda1" # 需要监控的磁盘分区，根据实际情况修改

# 检查磁盘空间并发送邮件的函数
check_disk_space_and_send_mail() {
    used=$(df -h | grep "$DISK" | awk '{print $5}' | cut -d'%' -f1)
    if [ $used -gt $DISK_SPACE_LIMIT ]; then
        echo "磁盘空间已使用${used}%，超过限制${DISK_SPACE_LIMIT}%"
        echo "磁盘空间使用率超过限制，发送邮件警告..."

	date=$(date -R)
        usedMB=$(df -h | grep "$DISK" | awk '{print $3}' | cut -d'%' -f1)
        availMB=$(df -h | grep "$DISK" | awk '{print $4}' | cut -d'%' -f1)
        echo -e "From:gitlab@172.18.155.175\nTo:${TO}\nSubject: git服务器磁盘告警\nCc:${CC},${CC1},${CC2}\n\n ${date} 172.18.155.175 磁盘 ${DISK} 空间使用率 ${used}% 超过限制 ${DISK_SPACE_LIMIT}%，当前使用 ${usedMB} 剩余可用 ${availMB} 请注意" | sendmail "$TO" "$CC" "$CC1" "$CC2" -f "$FROM" -s "$SMTP_SERVER"
    fi
}

# 监控函数
monitor() {
#    while true; do
        check_disk_space_and_send_mail
#        sleep 3600 # 每小时检查一次
#    done
}

# 执行监控
monitor

